/*
 * @Author: Lieven Vandeperre
 * @Description: ConnectionService die de config settings voor de database ophaalt van een .cfg en hiermee een connectie
 * maakt. SQL-Connecties kunnen opgevraagd worden met getConnection();
 */

package core.logic.services.utilServices;

import java.sql.*;
import java.util.ArrayList;
import java.io.*;

import javax.swing.JOptionPane;

public class ConnectionService {

	private static String _userName;
	private static String _password;
	private static String _location;
	private static String _dbName;
	
	static{
		String cfgLocation = System.getProperty("user.dir") + "/z.DBcfg/config.cfg";
		try{
			fillConnectionDetails(cfgLocation);
		}
		catch(FileNotFoundException ex){
			//TODO: Wat doen we met Exceptions? naar waar outputten (of helemaal niet?);
		}
	}
	
	private static void fillConnectionDetails(String loc) throws FileNotFoundException{
		
		//halen de gegevens on van de configFile en maken er een arraylisty van strings van
		
		BufferedReader in = new BufferedReader(new FileReader(new File(loc)));
		ArrayList<String> lines = new ArrayList<String>();
		try {
			String line = in.readLine();
			while(line != null){
				lines.add(line);
				line = in.readLine();
			}
		} 
		catch (IOException e) {
		}
		
		//gaan alle lijnen van de cfg af en zetten de waardes juist.
		for(String line:lines){
			String[] gespleten = line.split(":");
			switch (gespleten[0]) {
			case "DBusername":
				_userName = gespleten[1];
				break;
			case "DBpassword":
				_password = gespleten[1];
				break;
			case "DBlocation":
				_location = gespleten[1];
				break;
			case "DBname":
				_dbName = gespleten[1];
				break;
			default:
				break;
			}
		}	

	}
	
	public static Connection getConnection() throws SQLException{
		String url = "jdbc:sqlserver://"+_location+";databaseName="+_dbName;
		
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) 
		{
			JOptionPane.showMessageDialog(null, "classnotfoundexception!!");
		}
		Connection conn = DriverManager.getConnection(url, _userName, _password);
		return conn;
		
	}
	
	
	
	
}
